package edu.scau.tool.storage;
import java.io.InputStream;

/**
 * 面向接口编程
 * 引入新的配置时，实现接口定义具体存取方法
 */
public interface Storage {
    /**
     * 存元素
     * @param bucketName 桶名
     * @param objectName
     * @param inputStream
     * @param contentType
     * @throws Exception
     */
    void putObject(String bucketName, String objectName, InputStream inputStream, String contentType,long size) throws Exception;

    /**
     * 获取元素
     * @param bucketName
     * @param objectName
     * @return
     * @throws Exception
     */
    InputStream getObject(String bucketName, String objectName) throws Exception;

    /**
     * 获取云路径
     * @param bucketName
     * @param objectName
     * @return
     * @throws Exception
     */

    String getObjectUrl(String bucketName, String objectName) throws Exception;

    /**
     * 删除
     * @param bucketName
     * @param objectName
     * @throws Exception
     */

    void removeObject(String bucketName, String objectName) throws Exception;
}
